package com.angel.bo.admin.service;


import com.angel.bo.beans.admin.entity.Permission;
import com.angel.bo.beans.admin.entity.UserRole;
import com.angel.bo.beans.admin.vo.SavePermissionVo;
import com.angel.bo.beans.admin.vo.UserRoleVo;
import com.angel.bo.common.msg.WebReturn;
import com.angel.bo.common.service.BaseService;

/**
 * 
 *
 * @author ${author}
 * @email haibo.mei@ge.com
 * @date 2018-02-01 14:32:20
 */
public interface PermissionService extends BaseService<Permission> {

    /**
     * 获取用户授权的菜单
     * @param userRole
     * @return
     */
    WebReturn getPermissionList(UserRole userRole);


    /**
     * 给角色授权
     * @param savePermissionVo
     * @return
     */
    WebReturn saveThePermissionToRole(SavePermissionVo savePermissionVo);


    WebReturn getPermissionListMenu(UserRole userRole);

    /**
     * 获取角色实例列表
     * @param userRoleVo
     * @return
     */
    WebReturn getUserRolePage(UserRoleVo userRoleVo);

    /**
     * 给角色实例授权
     * @param savePermissionVo
     * @return
     */
    WebReturn saveThePermissionDataToUserRole(SavePermissionVo savePermissionVo);


    /**
     * 获取角色实例授权的数据权限
     * @param savePermissionVo
     * @return
     */
    WebReturn getThePermissionDataByUserRole(SavePermissionVo savePermissionVo);

    /**
     * 获取当前用户所有的数据权限
     * @return
     */
    WebReturn getThePermissionDataByCurrentUser(UserRole userRole);

    /**
     * 获取当前用户所有的数据权限-项目初始化时使用
     * @return
     */
    WebReturn initThePermissionDataByCurrentUser(UserRole userRole);


}


